package com.piece.core.framework.support.convert;

/**
 * Lambda表达式工具
 */
public class LambdaOptional<T> {

    /**
     * 数据
     */
    private T t;

    private LambdaOptional() {
    }

    private LambdaOptional(T t) {
        this.t = t;
    }

    /**
     * 获取工具对象
     */
    public static <T> LambdaOptional<T> newInstance() {
        return new LambdaOptional<>();
    }

    /**
     * 获取工具对象
     */
    public static final <T> LambdaOptional<T> newInstance(T t) {
        return new LambdaOptional<>(t);
    }

    /**
     * 设置数据
     */
    public void set(T t) {
        this.t = t;
    }

    /**
     * 获取数据
     */
    public T get() {
        return this.t;
    }

    /**
     * 判断数据是否为空
     */
    public boolean isEmpty() {
        return null == this.t;
    }

    /**
     * 判断数据是否非空
     */
    public boolean isPresent() {
        return !isEmpty();
    }
}